package com.atmilan.quartz.model.dto.jky;

import java.math.BigDecimal;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;

/**
 * 吉客云商品sku映射
 * @Description: 
 * @author daigb
 * @date 2021-06-28
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class JkyProductSkuResDTO {

    /**
     * 状态码
     */
    @JsonProperty(value = "code")
    private String code;
    
    /**
     * developerInfo
     */
    @JsonProperty(value = "developerInfo")
    private String developerInfo;
    
    /**
     * msg
     */
    @JsonProperty(value = "msg")
    private String msg;
    
    /**
     * result
     */
    @JsonProperty(value = "result")
    private Result result;
    
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Result {
        
        /**
         * result
         */
        @JsonProperty(value = "contextId")
        private String contextId;
        
        /**
         * data
         */
        @JsonProperty(value = "data")
        private DataResult dataResult;
        
        /**
         * pageInfo
         */
        @JsonProperty(value = "pageInfo")
        private PageInfo pageInfo;
        
    }
    
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class PageInfo {
        
        @JsonProperty(value = "offset")
        private Integer offset;
        
        @JsonProperty(value = "pageIndex")
        private Integer pageIndex;
        
        @JsonProperty(value = "pageSize")
        private Integer pageSize;
        
        @JsonProperty(value = "sortField")
        private String sortField;
        
        @JsonProperty(value = "sortOrder")
        private String sortOrder;
        
        @JsonProperty(value = "total")
        private Integer total;
        
    }
    
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class DataResult {
        /**
         * goodsStockQuantity
         */
        @JsonProperty(value = "goodsStockQuantity")
        private List<GoodsStockQuantity> goodsStockQuantity;
        
    }
    
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class GoodsStockQuantity {
        /**
         * quantityId
         */
        @JsonProperty(value = "quantityId")
        private String quantityId;
        
        /**
         * warehouseId
         */
        @JsonProperty(value = "warehouseId")
        private String warehouseId;
        
        /**
         * warehouseName
         */
        @JsonProperty(value = "warehouseName")
        private String warehouseName;
        
        /**
         * warehouseCode
         */
        @JsonProperty(value = "warehouseCode")
        private String warehouseCode;
        
        /**
         * goodsId
         */
        @JsonProperty(value = "goodsId")
        private String goodsId;
        
        /**
         * goodsNo
         */
        @JsonProperty(value = "goodsNo")
        private String goodsNo;
        
        /**
         * goodsName
         */
        @JsonProperty(value = "goodsName")
        private String goodsName;
        
        /**
         * skuId
         */
        @JsonProperty(value = "skuId")
        private String skuId;
        
        /**
         * skuName
         */
        @JsonProperty(value = "skuName")
        private String skuName;
        
        /**
         * skuBarcode
         */
        @JsonProperty(value = "skuBarcode")
        private String skuBarcode;
        
        /**
         * unitName
         */
        @JsonProperty(value = "unitName")
        private String unitName;
        
        /**
         * batchNo
         */
        @JsonProperty(value = "batchNo")
        private String batchNo;
        
        /**
         * currentQuantity
         */
        @JsonProperty(value = "currentQuantity")
        private String currentQuantity;
        
        /**
         * defectiveQuanity
         */
        @JsonProperty(value = "defectiveQuanity")
        private String defectiveQuanity;
        
        /**
         * lockedQuantity
         */
        @JsonProperty(value = "lockedQuantity")
        private String lockedQuantity;
        
        /**
         * outSkuCode
         */
        @JsonProperty(value = "outSkuCode")
        private String outSkuCode;
        
        /**
         * batchNumber
         */
        @JsonProperty(value = "batchNumber")
        private String batchNumber;
        
        /**
         * productionDepart
         */
        @JsonProperty(value = "productionDepart")
        private String productionDepart;
        
        /**
         * registrationNumber
         */
        @JsonProperty(value = "registrationNumber")
        private String registrationNumber;
        
        /**
         * productionDate
         */
        @JsonProperty(value = "productionDate")
        private String productionDate;
        
        /**
         * memo
         */
        @JsonProperty(value = "memo")
        private String memo;
        
        private BigDecimal price;
        
        private BigDecimal otPrice;
        
        /**
         * imgUrl
         */
        private String imgUrl;
        
    }

}
